Computing platform
In computing, a platform describes some sort of hardware architecture or software framework (including application frameworks), that allows software to run. Typical platforms include a computer's architecture, operating system, programming languages and related runtime libraries or graphical user interface. Hardware, operating system and virtual machine To read here, some of the many meanings of platform, imagine a completely new computer hardware. It needs a software platform in order to run applications. Assembly language could be written directly, but usually software developers target the new hardware platform using a cross compiler. The cross-compiler itself with all it's attendant APIs becomes a new platform running on the developer's architecture which already contains the many software platforms that developers need to be productive with such as a GUI, a programming language, and libraries. Eventually the target platform gets its own operating system and software platforms and is complete; however, its development may continue from a different platform by using a virtual machine, a simulated platform on a platform. Virtualization and Paravirtualization platforms can target other platorms. One virtual platform simulates a hardware platform (for development) and all its software platforms (for running the targeted applications). Here are some more examples of the use of the phrase "computer platform". From the Linux File Hierarchy Standard:http://www.pathname.com/fhs/pub/fhs-2.3.html: The /usr/share directory is intended to sharable among all architecture platforms of a given OS; thus, for example, a site with i386, Alpha, and PPC platforms might maintain a single /usr/share directory that is centrally-mounted. At times platform refers to hardware, at other times to various abstraction levels of software. Role in software A platform is a crucial element in software development. A platform might be simply defined as 'a place to launch software'. It is an agreement that the platform provider gave to the software developer that logic code will interpret consistently as long as the platform is running on top of other platforms. Logic code includes byte code, source code, and machine code. Background Platforms are frequently mentioned with APIs. A complete suite of APIs constitute another type of platform called software platform. Software Platforms frequently are dependent to operating systems. However, this is not always true. For example, two popular non-OS dependent platforms are Java, as mentioned above, and BREW for mobile phones. .NET Microsoft .NET is an umbrella term that applies to a wide collection of products and technologies from Microsoft. Most have in common a dependence on the Microsoft .NET Framework. Java Java programs are a typical example of the latter point. Java source code is "compiled" to an intermediate-language bytecode which is then interpreted by an interpreter, the JVM, which then interfaces that program with the Java software libraries. In phones, PDAs and other wireless mobile devices, these libraries are the Java ME. Some phones, even without a full fledged OS, enable Java programs such as games to operate. Java and the bytecode are said to be platform independent. But this is because Java is the platform as well as a programming language. Software really cannot operate without a platform or be platform independent. The programming language is referred to here, meaning the programmer need not be concerned about the hardware or operating system platform, nor will the language change with a different platform. Operating system platform examples * AmigaOS * BSD line, FreeBSD, NetBSD, OpenBSD * Linux * Mac OS backward compatibility via Rosetta * Microsoft Windows ** WINE platform to behave like Microsoft Windows * Solaris * PlayStation Portable * Google Chrome OS Software platform examples * Java - JDK and JRE * .NET Framework * Mozilla Prism XUL and XUL Runner * uniPaaS * Adobe AIR * Mono Hardware examples *Supercomputer architectures. *RISC processor based machines running UNIX variants: **Sun computers running the Solaris operating system. **DEC Alpha cluster running under OpenVMS. *Macintosh, custom Apple Computer hardware and Mac OS operating system (now migrated on x86). **Newton devices running the Newton OS, also from Apple. *Commodity computer platforms, such as: **Wintel, that is, Intel x86 or compatible hardware and Windows operating system. **x86 with other Unix-like systems such as BSD variants. **CP/M computers based on the S-100 bus. Perhaps the earliest microcomputer platform. *Gumstix full function miniature computers with Linux. *A mainframe computer with its custom operating system, say an IBM z/OS. *A midrange computer with its custom operating system, say an IBM OS/400. *ARM architecture found in mobile devices. *Any variety of video game console. Phone platform Symbian * UIQ * S60 platform Linux * Linux * Qt Extended * Maemo * Android * LiMo * Openmoko Run time * JavaFX Mobile * Java ME * Helix Others * APOXI * BREW * iPhone * Palm OS * Windows Mobile * Blackberry OS See also * Operating Systems * Application Programming Interface * Optimization (Infrastructure & Application Platform) Category:Computing platforms ar:منصة حاسوب ca:Plataforma (informàtica) cs:Počítačová platforma da:Platform (styresystem) de:Plattform (Computer) et:Platvorm (infotehnoloogia) es:Plataforma (informática) ko:플랫폼 (컴퓨팅) it:Piattaforma (informatica) hu:Platform nl:Platform (informatica) ja:プラットフォーム (コンピューティング) pl:Platforma sprzętowa pt:Plataforma (informática) ru:Компьютерная платформа simple:Computing platform sv:Plattform (datorteknik) uk:Комп'ютерна платформа zh:系统平台